import axios, { AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios'

const service = axios.create({
    baseURL: '/api',
    // 允许跨域携带cookie
    // withCredentials: true,
    // 超时时间60秒
    timeout: 60000,
})

// 添加请求拦截器
service.interceptors.request.use(
    (request: AxiosRequestConfig) => {
        // 可以在此处做一些数据的校验  session的校验
        return request
    },
    (error: AxiosError) => {
        return error
    }
)

// 添加响应拦截器
service.interceptors.response.use(
    (response: AxiosResponse) => {
        
        return response
        // if (response?.data?.success === false) {
        //     // 错误处理 由于有些接口不会返回success字段，所以需要显示判断是否等于false
        //     console.error(response?.data?.message || response?.data?.data || '未知错误')
        //     return Promise.reject(response.data);
        // } else {
        //     // 请求成功返回数据
        //     return response.data
        // }
    },
    (error: AxiosError) => {
        
        // 返回数据前做了什么 清除 cookie / 跳转登录等等
        return Promise.reject(error)
    }
)

export default service

